package entidade;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@SequenceGenerator(name = "PK_ACERTO", sequenceName = "GEN_ACERTO_ID")
@NamedQueries({
	@NamedQuery(name = "acerto.findByReferencia", query = "select a from Acerto a where a.referencia = :referencia"),
	@NamedQuery(name = "acerto.somaAcerto", query = "select sum(a.valor) from Acerto a where a.referencia = :referencia")
})
@Table(name = "acerto")
public class Acerto {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "PK_ACERTO")
	@Column(name="cd_acerto")
	private Integer codigo;
	@JoinColumn(name="cd_usuario", referencedColumnName="cd_usuario")
	@ManyToOne(fetch = FetchType.LAZY)
    private Usuario usuario;
	@Temporal(TemporalType.DATE)
	private Date data;
	private String historico;
	private String referencia;
	private Float valor;
	
	public Integer getCodigo() {
		return codigo;
	}
	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public Date getData() {
		return data;
	}
	public void setData(Date data) {
		this.data = data;
	}
	public String getHistorico() {
		return historico;
	}
	public void setHistorico(String historico) {
		this.historico = historico;
	}
	public String getReferencia() {
		return referencia;
	}
	public void setReferencia(String referencia) {
		this.referencia = referencia;
	}
	public Float getValor() {
		return valor;
	}
	public void setValor(Float valor) {
		this.valor = valor;
	}
}
